#!/bin/bash

# 统计不同状态的 TCP 连接（除了 LISTEN）
all_status_tcp=$(netstat -nt | awk 'NR>2 {++status[$6]} END {for (s in status) print s, status[s]}')

# 统计各状态的 TCP 连接以及连接数
all_tcp=$(netstat -na | awk '/^tcp/ {++status[$NF]} END {for (s in status) print s, status[s]}')

# 统计连接到本地 80 端口的 IP 地址（IPv4）
connect_80_ip=$(netstat -ant | awk -F'[ :]' '/:80/ {++ip[$6]} END {for (i in ip) print i, ip[i]}' | sort -rn)

# 输出连接到本地 80 端口的前十个 IP 地址（IPv4）
top10_connect_80_ip=$(netstat -ant | awk -F'[ :]' '/:80/ {++ip[$6]} END {for (i in ip) print i, ip[i]}' | sort -rn | head -n 10)


echo -e "\e[31m不同状态（除了 LISTEN）的 TCP 连接及连接数：\e[0m\n${all_status_tcp}"
echo -e "\e[31m各个状态的 TCP 连接以及连接数：\e[0m\n${all_tcp}"
echo -e "\e[31m连接到本地 80 端口的 IP 地址及连接数：\e[0m\n${connect_80_ip}"
echo -e "\e[31m前十个连接到本地 80 端口的 IP 地址及连接数：\e[0m\n${top10_connect_80_ip}"